<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Usuario extends CI_Controller {
    	
    private $PERFIL;
    
    function Usuario (){
        parent::__construct();
		
		if(!$this->usercontrol->has_permission('usuario')){
            redirect('home');
		}
        
        if(!$this->session->userdata('logged')){
        	redirect('login');
        }
 
        $this->PERFIL = array(
            0 => 'Administrador',
            1 => 'Atendente',
        );
    }
	
	public function index (){
	    // Load open transports
	    $this->load->model('user_model');
	    $data['usuarios'] = $this->user_model->get(false);
	    $data['perfil_list'] = $this->PERFIL;
	 
	    $data['page_title']  = "Usuários";
	 
	    // Load View
	    $this->template->show('usuario/list', $data);
	}
	
	public function add (){
	    $data['page_title']  = "Novo Usuário";
		$data['nome'] = '';
	    $data['username']    = '';
	    $data['password'] = '';
		$data['email'] = '';
	    $data['perfil']    = '';
	    $data['perfil_list'] = $this->PERFIL;
	 
	    $this->template->show('usuario/add', $data);
	}
	 
	public function edit ($id){
	    $this->load->model('user_model');
	    $data = $this->user_model->get($id);
	 			
	    $data['page_title']  = "Editar Usuário - ".$data['nome'];
	    $data['perfil_list'] = $this->PERFIL;
	 
	    $this->template->show('usuario/add', $data);
	}
	
	public function remove ($id){
	    $this->load->model('user_model');
	    $this->user_model->delete($id);
	 
	    redirect('usuario');
	}
	
	public function save(){
        if($this->input->post('cancel') !== FALSE){
        	redirect('usuario');
        }
            
        $user_id = $this->input->post('id');
        
        $this->load->library('form_validation');
		
        $this->form_validation->set_rules('nome', 'Nome', 'required|ucwords');
		$this->form_validation->set_rules('perfil', 'Perfil', 'required');
        $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
		$this->form_validation->set_message('is_unique', 'Este %s já está cadastrado no sistema.');
		$this->form_validation->set_rules('username', 'Login', 'trim|required|is_unique[usuario.username]');
        $this->form_validation->set_rules('password', 'Senha', 'trim|required');
        
        if($this->form_validation->run() === false)  {
            $this->error = true;
            
            if ($user_id){
                $this->edit ($user_id);
            } else {
                $this->add ();
			}
			
            return;
        }
        
        $this->load->model('user_model');
        
        $sql_data = array(
        	'nome'		=> $this->input->post('nome'),
            'username'	=> $this->input->post('username'),
            'email'		=> $this->input->post('email'),
            'password'	=> $this->input->post('password'),
            'perfil'    => $this->input->post('perfil')
        );
        
        if ($user_id){
        	$this->user_model->update($user_id,$sql_data);
        } else {
            $this->user_model->create($sql_data);
		}

        redirect('usuario');
    }
 
}